<?php 

/**
 * 数据备份控制器
 * @author 阿柱 <422852954@qq.com>
 */
class BackupController extends AuthController{
    /**
     *   **列表展示方法
     */
    public function index(){
//  	显示备份的目录
		$dirs=Dir::tree('Backup');
		$this->assign('dirs',$dirs);
        $this->display(); 
    }
	/**
	 * 备份删除
	 */
	public function del(){
		$filename=Q('get.filename','');
		Dir::del('Backup/'.$filename);
		$this->success('删除成功');
	}
	
	/**
	 * 数据备份
	 */
	public function backup(){
		$result=Backup::backup(
			array(
				'size'=>200,  //分卷大小200KB
				'dir'=>'Backup/' . date('Ymdhis') . '/',  //备份目录 
				'step_time'=>1,  //备份时间间隔
			)
		);
//		如果备份失败
		if($result==false){
			$this->error(Backup::$error,U('Index/info'));
		}else{
//			如果备份成功
			if($result['status']=='success'){
				$this->success($result['message'],U('index'));
			}else{
				//如果在备份的过程中
				$this->success($result['message'],$result['url'],0.2);
			}
		}
	}
	/**
	 * 数据备份
	 */
	public function recovery(){
		$dir=Q('post.dir');
//		如果不存在session里面的dir目录则存入(下次还原的时候会跳转页面$dir会丢失所以存入session)*********
		if(!isset($_SESSION['dir'])){
			$_SESSION['dir']=$dir;
		}
//		数据还原
		$result=Backup::recovery(array('dir'=>$_SESSION['dir']));
		if($result===false){
//			还原发生错误
			$this->error(Backup::$error,U('Index/info'));
		}else{
			if($result['status']=='success'){
//				还原完毕之后要把session中的dir删掉
				unset($_SESSION['dir']);
//				还原完毕
				$this->success($result['message'],U('index'));
			}else{
//				还原运行中
				$this->success($result['message'],$result['url'],0.2);
			}
		}
	}
	
	
}
 

 
 
 
 
 
 








 ?>